package com.example.demo.controller;
/*
 * 李洲 2020030654A1213
 * 2024.05.24
 */
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

@Controller
@RequestMapping("/example")
public class ModelAttributeController {

    // 使用 @ModelAttribute 方法在每个请求处理之前将数据添加到模型中
    @ModelAttribute
    public void addAttributes(Model model) {
        model.addAttribute("commonAttribute", "这个是所有请求都共有的属性");
    }

    // 处理 GET 请求，并使用 @ModelAttribute 绑定请求参数到方法参数中
    @GetMapping("/greeting")
    public String greeting(@ModelAttribute("user") User user, Model model) {
        model.addAttribute("message", "你好, " + user.getName());
        return "greeting"; // 返回视图的名称
    }
}

// 定义用于接收请求参数的 User 类
class User {
    private String name;
    private int age;

    // Getter 和 Setter 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
